package com.topten.dao.especificos;

import java.util.List;

import javax.persistence.TypedQuery;

import com.topten.basicas.comum.Cidade;
import com.topten.basicas.comum.Situacao;
import com.topten.basicas.organizacional.Funcionario;
import com.topten.dao.generico.DAOGenerico;

public class DAOFuncionario extends DAOGenerico<Funcionario> implements
		IDAOFuncionario {

	public List<Funcionario> buscarFuncionarioPorNome(String nome) {

		String buscar = "Select f from Funcionario f where f.nome like :nom and f.situacao='ATIVO'";
		TypedQuery<Funcionario> query = entityManager.createQuery(buscar,
				Funcionario.class);
		query.setParameter("nom", nome + "%");

		return query.getResultList();

	}

	public List<Funcionario> buscarFuncionarioPorCPF(String cpf) {

		String consulta = "Select f from Funcionario f where f.documento1=:cpfConsulta";
		TypedQuery<Funcionario> query = entityManager.createQuery(consulta,
				Funcionario.class);
		query.setParameter("cpfConsulta", cpf);
		return query.getResultList();

	}

	@Override
	public List<Funcionario> buscarFuncionarioPorMat(Integer mat) {

		String consulta = "Select f from Funcionario f where f.matricula=:matricula";
		TypedQuery<Funcionario> query = entityManager.createQuery(consulta,
				Funcionario.class);
		query.setParameter("matricula", mat);
		return query.getResultList();

	}

	@Override
	public List<Funcionario> listarTodosAtivos(Enum<Situacao> situ) {

		String consulta = "Select f from Funcionario f where f.situacao=:situa";
		TypedQuery<Funcionario> query = entityManager.createQuery(consulta,
				Funcionario.class);
		query.setParameter("situa", situ);
		return query.getResultList();

	}

}
